package com.yb.java8.datetimeapi;

import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.Set;
import java.util.TimeZone;

/**
 * 时区ID，确定Instant和LocalDateTime互相转换的规则
 * 原java.util.TimeZone
 */
public class ZoneIdDemo {

    public static void main(String[] args) {

        // 获取系统默认时区
        System.out.println(ZoneId.systemDefault());
        //获取所有合法的“区域/城市”字符串
        Set<String> zoneSet = ZoneId.getAvailableZoneIds();
        System.out.println(zoneSet);
        //获取给定的区域/城市的zoneId
        System.out.println(ZoneId.of("Asia/Shanghai"));
        // 老时区类TimeZone 转换为java8的 ZoneId（见源码）
        System.out.println(TimeZone.getDefault().toZoneId());
    }

    /**
     * LocalDate,LocalTime,LocalDateTime
     *              -->ZonedDateTime
     * @param localDateTime
     * @param zoneId
     * @return
     */
    public static ZonedDateTime of(LocalDateTime localDateTime,ZoneId zoneId){
        return ZonedDateTime.of(localDateTime, zoneId);
    }
}
